package com.tencreat.domain.im;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.tencreat.common.annotation.Excel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import com.tencreat.common.core.domain.dto.BaseEntityDTO;

/**
 * IM  客服对象 im_customer
 *
 * @author tencreat
 * @company 深圳腾创互联科技有限公司
 * @link https://tencreat.com
 * @since 2023-11-22
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AllArgsConstructor
@NoArgsConstructor
@TableName("im_customer")
public class ImCustomer extends BaseEntityDTO<ImCustomer> {

    @TableId(type = IdType.AUTO)
    private Long id;

    @Excel(name = "imId")
    @ApiModelProperty(value= "imId")
    @TableField("`im_id`")
    private String imId;
    @Excel(name = "头像")
    @ApiModelProperty(value= "头像")
    @TableField("`avatar`")
    private String avatar;
    @Excel(name = "用户名")
    @ApiModelProperty(value= "用户名")
    @TableField("`username`")
    private String username;
    @ApiModelProperty(value = "平台ID, 1：IOS，2：Android，3：Windows，4：OSX，5：Web，6：MiniWeb，7：Linux，8：Android Pad，9：IPad，10：admin")
    @TableField(exist = false)
    Integer platformID;

    @Excel(name = "密码")
    @ApiModelProperty(value= "密码")
    @TableField("`password`")
    private String password;

    @TableField(value = "`create_by`", fill = FieldFill.INSERT)
    private String createBy;

    @TableField(value = "`create_time`", fill = FieldFill.INSERT)
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    @TableField(value = "`update_by`", fill = FieldFill.UPDATE)
    private String updateBy;

    @TableField(value = "`update_time`", fill = FieldFill.UPDATE)
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;

    @Excel(name = "备注")
    @ApiModelProperty(value= "备注")
    @TableField("`msg`")
    private String msg;

    @Excel(name = "0 正常  1 禁用")
    @ApiModelProperty(value= "0 正常  1 禁用")
    @TableField("`status`")
    private Integer status;

    @Excel(name = "是否被ban黑名单  0 正常  1 黑名单")
    @ApiModelProperty(value= "是否被ban黑名单  0 正常  1 黑名单")
    @TableField("`blacklist`")
    private Integer blacklist;

}